/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.jSkyRoom.interfaces.major;

import java.util.Collection;
import ru.jSkyRoom.interfaces.additional.HasConditions;
import ru.jSkyRoom.interfaces.additional.HasShortName;
import ru.jSkyRoom.interfaces.additional.HasScript;
import ru.jSkyRoom.interfaces.sub.JSkyQuestStage;
import skyproc.QUST;
import skyproc.QUST.Alias;
import skyproc.QUST.QuestFlags;
import skyproc.QUST.QuestObjective;

/**
 *
 * @author Rakev
 */
public interface Quest extends NamedMajor, HasScript, HasConditions, HasShortName {

    public int getPriority();

    public void setPriority(int priority);

    public boolean getFlag(QuestFlags flag);

    public void setFlag(QuestFlags flag);

    public void unsetFlag(QuestFlags flag);

    public QUST.QuestType getQuestType();

    public void setQuestType(QUST.QuestType type);

    public String getObjectWindowFilter();

    public void setObjectWindowFilter(String name);

    public Collection<JSkyQuestStage> getStages();

    public void addStage(JSkyQuestStage stage);

    public void removeStage(JSkyQuestStage stage);

    public Collection<QuestObjective> getObjectives();

    public void addObjective(QuestObjective objective);

    public void removeObjective(QuestObjective objective);

    public Collection<QUST.Alias> getAliases();

    public void addAlias(Alias alias);

    public void removeAlias(Alias alias);

}
